#include <stdio.h>
int true = 1;
int false = 0;

/* Verifica se um char eh maisculo! */
int isUpper(char c){
	if (c >= 'A' && c <= 'Z')
		return true;
	return false;
}

/* Trasnforma todos os char da string em minusculas */
void toLower(char* str){
	int i;
	for(i = 0; str[i] != '\0'; i++){
		if (isUpper(str[i]) == true)
			str[i] = (str[i] - 'A') + 'a';
	}
}

/* Conta quantas subStrings tem em uma certa string */
int containsSubString(char str[], char sub[]){
	int total = 0;
	int inicioSubString;
	int i = 0;
	int j = 0;
	while(str[i] != '\0'){
		if(str[i] == sub[j]){
			/* Quando achar um possivel inicio da subString guarda a posicao */
			if(j == 0)
				inicioSubString = i;
			j++;
			
		}
		else{
			/* Caso tenha achado o inicio mas nao seja uma subString entao volta pra comparar
			 * do inicio novamente */
			if(j > 0)
				i = inicioSubString;
			j = 0;
		}
		if(sub[j] == '\0'){
			total++;
			j = 0;
			
		}
		i++;
	}
	return total;
}

int main(int argc, char** argv)
{
	char text[1000], str[20];
	printf("Digite o texto [enter] e depois a palavra:\n");
	gets(text);
	gets(str);
	toLower(text);
	toLower(str);
	printf("%d\n", containsSubString(text, str));
	return 0;
}
